package cn.hfjava.kz.service;

import cn.hfjava.kz.entity.po.Permission;
import cn.hfjava.kz.entity.vo.TreeSelectVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * @author 86177
 * @description 针对表【permissions(权限表)】的数据库操作Service
 * @createDate 2024-07-10 10:07:02
 */
public interface PermissionService extends IService<Permission> {
    /**
     * 获取所有权限
     */
    List<Permission> findAllPermission();
    /**
     * 构建权限树结构
     */
    List<Permission> buildPermissionTree(List<Permission> permList);

    /**
     * 获取权限树
     */
    List<Permission> listWithTree();
    /**
     * 根据当前登录用户的ID获取此用户所有菜单权限信息
     */
    List<Permission> getMenuTree(Integer loginId);


//     boolean addPermission(Permission permission);
//
//    boolean updatePermission(Permission permission);
//
//    boolean deletePermission(Integer id);
//
//    Permission getPermissionTreeById(Integer id);


    /**
     * 根据菜单名称分页获取菜单权限列表
     * @param title  菜单名称
     * @return
     */
    List<Permission> findPermsTreeByName(String title);


    /**
     * 获取下拉菜单的树形结构
     * @return
     */
    List<TreeSelectVO> findTreeSelectTree();



    /**
     * 递归删除菜单
     * @param id 菜单id
     */
    Boolean deleteMenuById(Integer id);

    List<Permission> getPermissionTreeByRoleId(Integer roleId);

}
